import {takeEvery,put} from 'redux-saga/effects'//等待监听
import {GET_MY_LIST} from './actionTypes'
import {getListAction} from './actionCreators'
import axios from 'axios'

//协程：是多个线程互相协作，完成异步任务。
//Generator函数解决promise的代码冗余,asyncJob 是一个协程，它的奥妙就在其中的 yield 命令。它表示执行到此处，执行权将交给其他协程。也就是说，yield命令是异步两个阶段的分界线。
function* mySaga (){
    // 等待捕获action,监听takeEvery的执行情况
    yield takeEvery( GET_MY_LIST,getList)
}
function* getList(){
    console.log('jspang')
    // axios.post('https://www.fastmock.site/mock/759b4f73684cd7a5b5eb36794a121be8/fastmock/api/second/getlist').then((res)=>{
    //     console.log(res)
    //     const data=res.data
    //     const action = getListAction(data)//这是一个对象
    //     console.log(dispatch)
    //     dispatch(action)
    // })
    const res = yield  axios.post('https://www.fastmock.site/mock/759b4f73684cd7a5b5eb36794a121be8/fastmock/api/second/getlist')
    const action = getListAction(res.data)
    yield put(action)
}
export default mySaga;